package com.wicket.okrbff.biz.service.dto.res;


import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Objects;

/**
 * @desc BffOrgInductionRecordDto
 * @使用场景
 */
@Data
public class BffOrgInductionRecordDto implements Serializable {

    /**
     * 冗余部门名称:
     */
    @ApiModelProperty("冗余部门名称")
    private String deptShortName;

    /**
     * 必选冗余职务名称:
     */
    @ApiModelProperty("必选冗余职务名称")
    private String positionIdName;
    /**
     * 就职记录ID:
     */
    @ApiModelProperty("就职记录ID")
    private String inductionRecordId;
    /**
     * 组织ID:
     */
    @ApiModelProperty("组织ID")
    private String organizationId;
    /**
     * 就职单位类型实例:
     */
    @ApiModelProperty("就职单位类型实例")
    private String inductionUnitTypeCode;
    /**
     * 就职单位对象实例ID:
     */
    @ApiModelProperty("就职单位对象实例ID")
    private String entityId;
    /**
     * 冗余可选职务ID:
     */
    @ApiModelProperty("冗余可选职务ID")
    private String positionId;
    /**
     * 冗余组织名称:
     */
    @ApiModelProperty("冗余组织名称")
    private String organizationName;
    /**
     * 个人职务排序:
     */
    @ApiModelProperty("个人职务排序")
    private String positionOrderNumber;
    /**
     * 冗余职务角色编码:
     */
    @ApiModelProperty("冗余职务角色编码")
    private String positionRoleCode;
    /**
     * 部门标识:
     */
    @ApiModelProperty("部门标识")
    private String deptCode;
    /**
     * 层级:
     */
    @ApiModelProperty("层级")
    private Long levelNumber;
    /**
     * 职务性质:
     */
    @ApiModelProperty("职务性质")
    private String positionType;
    /**
     * 部门ID:
     */
    @ApiModelProperty("就职单位对象实例ID")
    private String deptId;
    /**
     * 身份人员ID:
     */
    @ApiModelProperty("身份人员ID")
    private String originalRoleMemberId;
    /**
     * 身份人员编号:
     */
    @ApiModelProperty("身份人员编号")
    private String roleMemberCode;
    /**
     * 个人账号ID:
     */
    @ApiModelProperty("个人账号ID")
    private String userId;
    /**
     * 真实头像:
     */
    @ApiModelProperty("真实头像")
    private String userFace;
    /**
     * 真实姓名:
     */
    @ApiModelProperty("真实姓名")
    private String idCardName;
    /**
     * 用户昵称:
     */
    @ApiModelProperty("用户昵称")
    private String nickName;
    /**
     * 备注首位字母:
     */
    @ApiModelProperty("备注首位字母")
    private String firstLetter;
    /**
     * 是否兼职:
     */
    @ApiModelProperty("是否兼职")
    private String isPtJob;
    /**
     * 是否异动:
     */
    @ApiModelProperty("是否异动")
    private String isTransaction;
    /**
     * 部门成员排序:
     */
    @ApiModelProperty("部门成员排序")
    private Long deptMemberOrderNumber;
    /**
     * 批次下更新状态:
     */
    @ApiModelProperty("批次下更新状态")
    private String updateStatus;
/**
     * 是否主岗 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否主岗")
    private String	 isMainInduction;

    /**
     * 可选主管就职记录ID 
     */
    @ApiModelProperty("可选主管就职记录ID")
    private String	 directorInductionRecordId;
/**
     * 是否主管 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否主管")
    private String	 isDirector;
/**
     * 部门业务身份 EDUCATIONAL_ADMINISTRATION:教务 TEACHING_DEPARTMENT:教学部门 LEARNING_INDUSTRIAL_PRODUCTION:学工 PERSONNEL_MATTERS:人事 FINANCE:财务 SCHOOL_LEADER:校领导
     */
    @ApiModelProperty("部门业务身份")
    private String	 deptBusinessIdentity;
/**
     * 数据值结果 
     */
    @ApiModelProperty("数据值结果")
    private Double	 dataResult;

    /**
     * 冗余单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("冗余单位")
    private String	 unit;

    /**
     * 周期类型实例简称 
     */
    @ApiModelProperty("周期类型实例简称")
    private String	 cycleNumberShortName;

    @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffOrgInductionRecordDto that = (BffOrgInductionRecordDto) o;
      return  deptShortName == that.deptShortName&&positionIdName == that.positionIdName&&inductionRecordId == that.inductionRecordId&&organizationId == that.organizationId&&inductionUnitTypeCode == that.inductionUnitTypeCode&&entityId == that.entityId&&positionId == that.positionId&&organizationName == that.organizationName&&positionOrderNumber == that.positionOrderNumber&&positionRoleCode == that.positionRoleCode&&deptCode == that.deptCode&&levelNumber == that.levelNumber&&positionType == that.positionType&&deptId == that.deptId&&originalRoleMemberId == that.originalRoleMemberId&&roleMemberCode == that.roleMemberCode&&userId == that.userId&&userFace == that.userFace&&idCardName == that.idCardName&&nickName == that.nickName&&firstLetter == that.firstLetter&&isPtJob == that.isPtJob&&isTransaction == that.isTransaction&&deptMemberOrderNumber == that.deptMemberOrderNumber&&updateStatus == that.updateStatus&&isMainInduction == that.isMainInduction&&directorInductionRecordId == that.directorInductionRecordId&&isDirector == that.isDirector&&deptBusinessIdentity == that.deptBusinessIdentity&&dataResult == that.dataResult&&unit == that.unit&&cycleNumberShortName == that.cycleNumberShortName;
    }

    @Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), deptShortName,positionIdName,inductionRecordId,organizationId,inductionUnitTypeCode,entityId,positionId,organizationName,positionOrderNumber,positionRoleCode,deptCode,levelNumber,positionType,deptId,originalRoleMemberId,roleMemberCode,userId,userFace,idCardName,nickName,firstLetter,isPtJob,isTransaction,deptMemberOrderNumber,updateStatus,isMainInduction,directorInductionRecordId,isDirector,deptBusinessIdentity,dataResult,unit,cycleNumberShortName);
    }
}
